<%-- 使用 JSP 语法来自定义标签 --%>
<%@ tag language="java" %>
<%-- 在 .tag 文件中 tag 指令类似于 .jsp 中的 page 指令 --%>
<%@ tag pageEncoding="UTF-8" %>
<%-- 导入 JSTL 中的 core 标签库 --%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<%-- 在 .tag 文件中使用 attribute 指令为 自定义标签定义 属性 --%>
<%@ attribute name="current" type="java.lang.Integer" required="true" %>
<%@ attribute name="total" type="java.lang.Integer" required="true" %>
<%@ attribute name="uri" type="java.lang.String" required="true" %>

<%-- 这里使用了 bootstrap 提供的样式支持 --%>
<div class="container pagination-wrapper">
  <div>
    每页显示:
    <a href="${uri}?size=3">3行</a>
    <a href="${uri}?size=5">5行</a>
    <a href="${uri}?size=10">10行</a>
    <a href="${uri}?size=15">15行</a>
    <a href="${uri}?size=20">20行</a>
  </div>
  <ul class="pagination pagination-sm justify-content-end">
    <%-- 若当前页是第一页则禁用 "上一页" 链接 --%>
    <li class="page-item ${ current == 1 ? 'disabled' : '' }">
      <a class="page-link" href="${ uri }?current=${ current - 1 }">上一页</a>
    </li>
    <c:forEach begin="1" step="1" end="${ total }" var="page">
      <li class="page-item ${ current == page ? 'active' : '' }">
        <a class="page-link" href="${ uri }?current=${page}">${ page }</a>
      </li>
    </c:forEach>
    <%-- 若当前页是最后一页则禁用 "下一页" 链接 --%>
    <li class="page-item ${ current == total ? 'disabled' : '' }">
      <a class="page-link" href="${ uri }?current=${ current + 1 }">下一页</a>
    </li>
  </ul>
</div>
